package com.dialog.suotalib.utils;

import android.util.Log;

public class StringUtils {

    public static int hex16to10String(String hexString) {
        // 十六进制字符串


        // 将十六进制字符串转换为十进制数
        int decimalNumber = Integer.parseInt(hexString, 16);

        // 打印结果
        System.out.println("Hexadecimal: " + hexString+("Decimal: " + decimalNumber));
//        System.out.println("Decimal: " + decimalNumber);
        return decimalNumber;
    }   // 将十六进制字符串转换为十进制数的方法

    public static int hexToDecimal(String hexString1, String hexString2) {
        int deci = ((Byte.parseByte(hexString1) & 0xff)|(Byte.parseByte(hexString2) & 0xff)<<8);
Log.e("进制转换",hexString1+","+hexString2+","+deci);

        return deci;
    }    public static int hexToDecima0l(String hexString1, String hexString2) {
//        int deci = ((Byte.parseByte(hexString1) & 0xff)|(Byte.parseByte(hexString2) & 0xff)<<8);
//Log.e("进制转换",hexString1+","+hexString2+","+deci);
        String hex =hexString1 +hexString2;

//         将十六进制字符串转换为整数
        int hexInt = Integer.parseInt(hex, 16);

        // 如果最高位为1，表示负数
        if ((hexInt & 0x8000) != 0) {
            // 负数的情况，计算补码
            hexInt = -(0x10000 - hexInt);
        }
//        int hexInt = ((0xdd & 0xff)|(data[1] & 0xff)<<8);
        return hexInt;
    }    public static int hexToDecimal10(String hexString) {
        try {
            // 将十六进制字符串转换为无符号字节（注意：Java的byte是有符号的）
            byte unsignedByte = (byte) Integer.parseInt(hexString, 16);

            // 检查最高位（符号位）是否为1，如果是，则表示是负数（在Java的byte中）
            if ((unsignedByte & 0x80) != 0) {
                // 执行两的补码转换（取反后加1）以得到对应的正数，然后取反得到负数
                // 注意：在Java中，直接对byte取反会得到int类型的值，并且自动进行符号扩展
                int positiveValue = unsignedByte & 0xFF; // 清除符号位，获取无符号的byte值
                int negativeValue = -((positiveValue ^ 0xFF) + 1); // 执行两的补码转换得到负数
                return negativeValue;
//                System.out.println(negativeValue); // 输出: -5
            } else {
                // 如果最高位不是1，则直接是无符号整数的值（在Java的byte范围内）
                return unsignedByte;
//                System.out.println(unsignedByte);
            }
        } catch (NumberFormatException e) {
            // 处理十六进制字符串转换错误
            System.out.println("Invalid hex string: " + hexString);
        }
        return 0;
    }
}


